// 给你一个字符串 s 和一个整数 k ，请你找出 s 中的最长子串， 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。

var longestSubstring = function(s, k) {
  if (s.length < k) return 0
  const map = new Map()
  for (let i = 0, len = s.length; i < len; i++) {
    let count = map.get(s[i])
    map.set(s[i], count ? ++count : 1)
  }
  for (let [key, value] of map.entries()) {
    if (value < k) {
      let splitArr = s.split(key), res = 0
      splitArr.forEach(item => {
        if (item.length >= k) {
          res = Math.max(res, longestSubstring(item, k))
        }
      })
      return res
    }
  }
  return s.length
};